Déployer de Brinjel sur Clever Cloud

Brinjel est un logiciel libre de gestion de champs destiné aux maraîchers, permettant de planifier les saisons, suivre les récoltes et optimiser la production agricole. Conçu par et pour les maraîchers, il met l’accent sur une interface intuitive et des fonctionnalités adaptées aux besoins du terrain.

Dans cet article, nous présentons les adaptations réalisées pour permettre le déploiement de Brinjel sur Clever Cloud, offrant ainsi une infrastructure scalable, sécurisée et souveraine pour les agriculteurs et institutions agricoles.

Pourquoi choisir Clever Cloud pour Brinjel ?


L’exécution d’un conteneur Elixir chez Clever Cloud présente plusieurs avantages :
Scalabilité : L’infrastructure s’adapte automatiquement à la charge de travail, garantissant un fonctionnement fluide même en période de forte utilisation.
Sécurité et gestion des données souveraines : Clever Cloud propose un hébergement conforme aux exigences de souveraineté des données.
Facilité de déploiement : En quelques commandes, une application est mise en production avec une intégration fluide de services complémentaires comme la base de données, le stockage et les e-mails.

3. Adaptations effectuées pour le déploiement


Afin de rendre Brinjel pleinement fonctionnel sur Clever Cloud, plusieurs améliorations ont été apportées :

Intégration de MailPace


L’envoi d’e-mails est désormais géré via MailPace, une solution intégrée chez Clever Cloud. L’adaptation a été faite via le module Swoosh en ajoutant un support dynamique de l’adaptateur.

Support URL de PostgreSQL


L’ajout du support pour POSTGRESQL_ADDON_URI permet une meilleure gestion de la base de données en exploitant directement l’URL fournie par Clever Cloud.

Support S3 pour la gestion des fichiers


L’implémentation d’un backend S3 via l’add-on Cellar de Clever Cloud assure un stockage optimisé des images et fichiers.

Matériel et méthode : déploiement sur Clever Cloud


Voici les étapes détaillées pour déployer Brinjel sur Clever Cloud, permettant ainsi une installation rapide et efficace de l’application dans un environnement cloud souverain.

Configuration initiale


Commencez par récupérer la version officielle de Brinjel depuis son dépôt principal, appliquez les modifications spécifiques au déploiement sur Clever Cloud depuis votre fork, puis effectuez un merge des changements avant de procéder au déploiement.
Tapez les commandes suivantes :

git clone https://framagit.org/brinjel/brinjel.git && cd brinjel 
git remote add deploy https://framagit.org/wanoo/brinjel.git 
git fetch deploy 
git checkout -b deploy-clevercloud deploy/deploy-clevercloud 
git merge origin/main

Création de l’application sur Clever Cloud


Créez une nouvelle application Elixir et ajoutez les services nécessaires.
Tapez les commandes suivantes :

clever login 
clever create --type elixir --region par --org brinjel-prod 
clever addon create postgresql-addon brinjel-db --plan xxs_med --org --link brinjel-prod --addon-version 17 
clever addon create cellar-addon brinjel-cellar --plan s --org --link brinjel-prod 
clever addon create mailpace brinjel-mail --org --link brinjel-prod

Configuration des variables d’environnement


Ajoutez les variables d’environnement nécessaires au bon fonctionnement de l’application.
Tapez les commandes suivantes :

clever env set PHX_HOST "brinjel.mydomain.ltd"
clever env set BRINJEL_FIRST_USER_EMAIL "admin@mydomain.ltd"
clever env set BRINJEL_FIRST_USER_FARM_NAME "MaJolieFerme"
clever env set BRINJEL_FIRST_USER_PASSWORD "ChangeMe_Brinjel12345"
clever env set BRINJEL_FROM_EMAIL "noreply@mydomain.ltd"
clever env set CELLAR_ADDON_BUCKET "brinjel-prod-mydomain"

clever env set ADMIN_USER_IDS "1"
clever env set BRINJEL_ENVIRONMENT "prod"
clever env set BRINJEL_FIRST_USER_CREATE "true"
clever env set BRINJEL_PHOTO_STORE "s3"
clever env set BRINJEL_SWOOSH_ADAPTER "mailpace"
clever env set CC_CACHE_DEPENDENCIES "true"
clever env set CC_MIX_BUILD_GOAL "compile"
clever env set CC_PHOENIX_ASSETS_DIR "assets"
clever env set CC_PHOENIX_DIGEST_GOAL "assets.deploy"
clever env set CC_PHOENIX_RUN_ECTO_MIGRATE "true"
clever env set CC_PHOENIX_SERVER_GOAL "phx.server"
clever env set CC_POST_BUILD_HOOK "mix sass.install"
clever env set CC_RUN_COMMAND "mix release && _build/prod/rel/brinjel/bin/brinjel eval \"Brinjel.Release.createdb\" && _build/prod/rel/brinjel/bin/brinjel eval \"Brinjel.Release.migrate\" && _build/prod/rel/brinjel/bin/brinjel start"
clever env set DISABLE_REGISTRATION "true"
clever env set LANG "fr"
clever env set MIX_ENV "prod"
clever env set PADDLE_API_KEY "test"
clever env set PADDLE_CLIENT_TOKEN "paddle_token"
clever env set PADDLE_ENVIRONMENT "sandbox"
clever env set PADDLE_NOTIFICATION_KEY "good_key"
clever env set PHX_SERVER "true"
clever env set PORT "8080"
clever env set SECRET_KEY_BASE "$(openssl rand -base64 64 | tr -d '\n')"

Déploiement de l’application


Avant de procéder au déploiement, deux étapes de configuration sont nécessaires :

Configuration du bucket Cellar sur Clever Cloud

  • Accédez à la console Clever Cloud.
  • Sélectionnez l’add-on Cellar.
  • Créer le bucket défini par la variable CELLAR_ADDON_BUCKET en “brinjel-prod-mydomain”.
  • Enregistrez les modifications et vérifiez que l’accès fonctionne correctement.

Validation du domaine pour MailPace sur Clever Cloud

  • Accédez à la console Clever Cloud.
  • Sélectionnez l’add-on MailPace.
  • Rendez-vous sur le tableau de bord de MailPace.
  • Ajoutez et validez le domaine mydomaine.ltd.
  • Suivez les instructions de MailPace pour ajouter les enregistrements DNS nécessaires.


Vérifiez que l’authentification d’envoi d’e-mails est bien active.
Une fois ces configurations effectuées, vous pouvez lancer le déploiement de l’application.
Tapez la commande suivante :

clever deploy


Une fois le déploiement terminé, l’application est accessible à l’URL définie dans PHX_HOST. Vous pouvez ensuite superviser l’application via le tableau de bord Clever Cloud et ajuster les paramètres si nécessaire.

Conclusion


Ce travail autour du déploiement de Brinjel sur Clever Cloud montre avant tout la flexibilité et la facilité avec lesquelles une application open source peut être adaptée et hébergée sur une infrastructure souveraine, performante et résiliente. L’objectif ici n’est pas de répliquer une offre SaaS existante, mais bien de démontrer comment un outil métier peut tirer parti d’un cloud moderne pour assurer sa pérennité et sa scalabilité.


Cette approche s’inscrit dans une logique de collaboration et d’innovation ouverte : faciliter l’adoption d’un logiciel, explorer de nouvelles opportunités techniques et offrir des solutions adaptées aux besoins spécifiques des utilisateurs. Clever Cloud se positionne comme un facilitateur de ces initiatives, en garantissant une infrastructure fiable et optimisée.


Un grand merci à  André Hoarau, créateur de Brinjel, pour son travail sur cet outil. Ce proof-of-concept illustre la capacité d’adaptation des solutions Clever Cloud et ouvre la voie à d’autres projets open source qui souhaitent bénéficier d’un hébergement performant et souverain.
Si vous souhaitez soutenir le projet Brinjel et son développement, nous vous encourageons à utiliser sa version SaaS officielle disponible sur le site de Brinjel.

Blog

À lire également

Déployer de Brinjel sur Clever Cloud

Brinjel est un logiciel libre de gestion de champs destiné aux maraîchers, permettant de planifier les saisons, suivre les récoltes et optimiser la production agricole. Conçu par et pour les maraîchers, il met l’accent sur une interface intuitive et des fonctionnalités adaptées aux besoins du terrain.
Entreprise

Pilotez plus simplement des services Clever Cloud via Kubernetes avec notre nouvel opérateur

Depuis deux ans nous permettons à nos clients de combiner la simplicité de déploiement de Clever Cloud à une infrastructure Kubernetes existante à travers un opérateur.
Engineering

Keycloak as a Service : la gestion des identités sans la complexité

Assurer l’identification et la gestion des accès (IAM) dans une application est un enjeu aussi stratégique que complexe. Mais au-delà de la configuration initiale, ce sont la maintenance, les mises à jour et la supervision de la solution qui mobilisent le plus vos équipes. Et si vous pouviez vous concentrer sur vos applications… pendant qu’une solution managée se charge du reste ?
Événements